package com.cyt.work.question.model.po;

import com.cyt.work.question.model.dto.QuestionUserDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 问卷管理表
 *
 * @author concong tao
 * @since 2019-01-31
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Table(name = "cyt_question")
public class Question implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    private String id;

    /**
     * 应用ID
     */
    private String applyId;

    /**
     * 标题
     */
    private String title;

    /**
     * 类型(1:扫码问卷,2:对象问卷)
     */
    private String type;

    /**
     * 对象类型(1:所有人,2:教师，3：学生，4：自定义)
     */
    private String objectType;

    /**
     * 状态(0:创建中,1:编辑中，2:未开始，3:发布中，4:结束)
     */
    private String status;

    /**
     * 微信中链接
     */
    private String wxUrl;

    /**
     * 二维码
     */
    private String qrCode;

    /**
     * 描述
     */
    private String remark;

    /**
     * 开始时间
     */
    private Date startTime;

    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 创建时间
     */
    @Column(name = "create_time")
    private Date createTime;

    /**
     * 答题人数
     */
    @Transient
    private String allCount;

    @Transient
    private String subjectJson;

    @Transient
    private String userJson;

    @Transient
    private String startTimeStr;

    @Transient
    private String endTimeStr;

    @Transient
    private List<QuestionSubject> subjectList;

    /**
     * 编辑中，全部
     * 已发布或发布中，显示已提交人员
     */
    @Transient
    private List<QuestionUserDto> questionUserList;

    /**
     * 已发布或发布中，显示未提交人员
     */
    @Transient
    private List<QuestionUserDto> noSubmitQuestionUserList;
}
